
var common = {
    ajax: function ajax(url, data, success,type,async, error) {
        var type = type || 'post';//请求类型
        var async = async || true;//异步请求
        var success = success || function (data) {
            /*console.log('请求成功');*/
            setTimeout(function () {
                layer.msg(data.msg);//通过layer插件来进行提示信息
            }, 500);
            if (data.status) {//服务器处理成功
                setTimeout(function () {
                    if (data.url) {
                        location.replace(data.url);
                    } else {
                        location.reload(true);
                    }
                }, 1500);
            } else {//服务器处理失败
                layer.msg(data.msg, {icon: 5, shade: 0.01});
            }
        };
        var error = error || function (data) {
                // console.error('请求成功失败');
                /*data.status;//错误状态吗*/
            layer.closeAll('loading');
            setTimeout(function () {
                if(data.status != 200){
                    if (data.status == 404) {
                        layer.msg('请求失败，请求未找到', {icon: 5, shade: 0.01});
                    } else if (data.status == 503) {
                        layer.msg('请求失败，服务器内部错误', {icon: 5, shade: 0.01});
                    } else {
                        layer.msg('请求失败,网络连接超时', {icon: 5, shade: 0.01});
                    }
                }
            }, 500);
        };

        //获取登录信息
        var user = getUser();
        var token;
        try{
            token = user.token;
        }catch(error){
            console.log(error);
        }
        $.ajax({
            'url': url,
            'data': data,
            'type': type,
            'dataType': 'json',
            'async': async,
            'success': success,
            'contentType': "application/json",
            'error': error,
            'jsonpCallback': 'jsonp' + (new Date()).valueOf().toString().substr(-4),
            'beforeSend': function () {
                layer.load(0, {shade: false});
            },
            'headers':{
                'token': token
            }
        });
    }
};
    /**时间格式化工具
     * 如:
     *      new Date().format("yyyy-MM-dd hh:mm:ss")
     *      new Date().format("yyyy-MM-dd ")
     * */
    Date.prototype.format = function (format) {
        var args = {
            "M+": this.getMonth() + 1,
            "d+": this.getDate(),
            "h+": this.getHours(),
            "m+": this.getMinutes(),
            "s+": this.getSeconds(),
            "q+": Math.floor((this.getMonth() + 3) / 3),  //quarter
            "S": this.getMilliseconds()
        };
        if (/(y+)/.test(format))
            format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var i in args) {
            var n = args[i];
            if (new RegExp("(" + i + ")").test(format))
                format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substr(("" + n).length));
        }
        return format;

    };


    /**
     *获取当前登录用户
     * @returns {any} json对象
     */
    function getUser(){
        //获取登录信息
        var user = JSON.parse(window.sessionStorage.getItem("user"));
        return user;
    }

    /**
     * 包装成标准的请求接口参数
     * @param data
     */
    function formatData(data) {
        var tableData = {
            "body":{
            },
            "header":{
            },
            "token":{
            }
        };
        tableData.body = data;
        return tableData;
    }
